import { _decorator, Component, Node, UITransform, Layers } from 'cc'

// 导出一个名为 createUINode 的函数，该函数用于创建一个UI节点
// 参数 name 是字符串类型，默认为空字符串，用于给节点命名
export const createUINode = (name: string = '') => {
  // 创建一个新的节点，并使用参数 name 进行命名（如果 name 未提供，则使用空字符串）
  const node = new Node(name)

  // 向节点添加一个 UITransform 组件，这个组件通常用于控制UI元素的布局和位置
  const transform = node.addComponent(UITransform)

  // 设置节点的锚点（anchor point）为 (0, 1)，这通常意味着节点的左下角为原点
  transform.setAnchorPoint(0, 1)

  // 设置节点的层级（layer）。这里使用了位运算（<<）和 Layers 枚举（假设是项目中定义的）
  // 'UI_2D' 是 Layers 枚举中的一个值，代表UI的2D层级。通过 nameToLayer 方法将 'UI_2D' 转换为对应的层级索引
  // 然后使用左移操作符（<<）将索引转换为一个二进制位掩码，用于在后续的渲染过程中区分不同的层级
  node.layer = 1 << Layers.nameToLayer('UI_2D')

  return node
}

export const randomInRange = (begin: number, end: number):number => {
  return Math.floor(begin + (end - begin) * Math.random())
}
